package co.com.smart.persistence.entity;

import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import co.com.smart.persistence.entity.dto.SmartNucleoEducativo;
import co.com.smart.persistence.entity.util.AbstractFacade;

/**
 * Session Bean implementation class NucleoEducativoFacade
 */
@Stateless(
		name		= "NucleoEducativoFacade", 
		mappedName 	= "ejb/NucleoEducativoFacade")
public class NucleoEducativoFacade extends AbstractFacade<SmartNucleoEducativo> implements NucleoEducativoFacadeLocal{
	@PersistenceContext(unitName = "SmartServicesPU")
	private EntityManager em;
	/**
	 * Default constructor. 
	 */
	public NucleoEducativoFacade() {
		super(SmartNucleoEducativo.class);
	}
	
	@Override
	protected EntityManager getEntityManager() {
		return em;
	}
	
    @SuppressWarnings("unchecked")
    @Override
    public List<SmartNucleoEducativo> filtrarnucleoseducativos(SmartNucleoEducativo entity) {
       	StringBuilder  sQuery = new StringBuilder("select c from SmartNucleoEducativo c  ");
		sQuery.append(" where c.smfhretiro is null ");
		
		if (entity.getSmartCiudad()  != null && entity.getSmartCiudad().getSmscciudad() != null)
		{
			sQuery.append(" and c.smartCiudad = :sm_scciudad ");			
		}			

		if(entity.getSmcousuario() != null && !"".equals(entity.getSmcousuario().trim())){
			sQuery.append(" and c.smcousuario = :sm_cousuario ");
		}
		
		if(entity.getSmconucleoeducativo() != null && !"".equals(entity.getSmconucleoeducativo().trim())){
			sQuery.append(" and c.smconucleoeducativo = :sm_conucleoeducativo ");
		}
		
		if(entity.getSmdsnucleoeducativo() != null && !"".equals(entity.getSmdsnucleoeducativo().trim())){
			sQuery.append(" and c.smdsnucleoeducativo like :sm_dsnucleoeducativo ");
		}
		
		Query query = em.createQuery(sQuery.toString() );
		
		if (entity.getSmartCiudad()  != null && entity.getSmartCiudad().getSmscciudad() != null) {
			query.setParameter("sm_scciudad", entity.getSmartCiudad());	
		}
		
		if(entity.getSmcousuario() != null && !"".equals(entity.getSmcousuario().trim())) {
			query.setParameter("sm_cousuario", entity.getSmcousuario().trim());
		}
		
		if(entity.getSmconucleoeducativo() != null && !"".equals(entity.getSmconucleoeducativo().trim())){
			query.setParameter("sm_conucleoeducativo", entity.getSmconucleoeducativo().trim());
		}
		
		if(entity.getSmdsnucleoeducativo() != null && !"".equals(entity.getSmdsnucleoeducativo().trim())){
			query.setParameter("sm_dsnucleoeducativo", entity.getSmdsnucleoeducativo().trim());
		}
		
		return query.getResultList();	
    }
	
}
